/**
 * 获取随机数的函数
 * @param {number} a 代表范围的数字
 * @param {number} b 代表范围的数字
 * @return {number} 返回范围内的随机整数
 */
function getRandom(a, b){
    return Math.floor(Math.random() * Math.abs(a - b)) + Math.min(a, b)
}
/**
 * 获取16进制的随机颜色值
 */
function getColor(){
    var color = '#'
    for(var i=0;i<3;i++){
        var hex = getRandom(0, 256).toString(16)
        color += hex.length === 1 ? '0' + hex : hex;
    }
    return color
}
/**
 * 批量设置样式的函数
 * @param {node} ele 被设置样式的标签对象
 * @param {object} styleObj 要设置的样式组成的键值对
 */
function setStyle(ele, styleObj){
    for(var key in styleObj){
        ele.style[key] = styleObj[key]
    }
}
/**
 * 进行动画的函数
 * @param {node} ele 要进行动画的元素
 * @param {object} obj 动画的属性和值组成的键值对
 * @param {function} fn 动画结束后要执行的函数
 */
function animate(ele, obj, fn){ 
    var k = 0
    for(var key in obj){
        k++
        (function(key){
            var currentStyle = getComputedStyle(ele)[key]
            var target = obj[key]
            if(key === 'opacity'){
                currentStyle *= 100
                target *= 100
            }
            currentStyle = parseInt(currentStyle)
            var timerId = setInterval(function(){
                var speed = (target - currentStyle) / 20
                currentStyle += speed > 0 ? Math.ceil(speed) : Math.floor(speed)
                if(key === 'opacity') ele.style[key] = currentStyle / 100
                else ele.style[key] = currentStyle + 'px'
                if(currentStyle === target){
                    clearInterval(timerId)
                    if(--k === 0) fn()
                }
            }, 20)
        })(key)
    }
}
/**
 * 获取cookie的函数
 * @param {string} key 要获取的cookie的键
 * @returns key对应的值
 */
function getCookie(key){
    var cookie = document.cookie;
    var arr = cookie.split('; ')
    for(var i=0;i<arr.length;i++){
        var brr = arr[i].split('=')
        if(brr[0] === key){
            return brr[1]
        }
    }
}
/**
 * 设置cookie的函数
 * @param {string} key 要设置的cookie的键
 * @param {string} value key对应的值
 * @param {number} seconds 有效的秒
 */
function setCookie(key, value, seconds){
    var date = new Date()
    date.setTime(date.getTime()+seconds*1000-8*3600*1000)
    document.cookie = key + '='+value+';expires='+date
}
/**
 * 删除cookie的函数
 * @param {string} key 要删除的cookie的键
 */
function removeCookie(key){
    setCookie(key, null, -1)
}